﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for HoaDon
/// </summary>
public class DonDatHangCtr
{
    public decimal tongtien;
    public string mahd;
	public DonDatHangCtr()
	{
		
	}
    public string getTrangThaiDDH(string maddh)
    {
        string sql = "select trangthai from dondathang where mahd=@maddh";
        object retval = DataProvider.ExecuteScalar(sql,"@maddh",maddh);
            return retval.ToString();
    }
    public string getMaThamSo()
    {
        string sql = "select [MaThamSo] from ThamSo where NgayBD<=getDate() AND GETDATE()<=NgayKT ";
        object retval= DataProvider.ExecuteScalar(sql);
        if (retval == null)
            return "NULL";
        return retval.ToString();
    }
    public string getMaNhanVien()
    {
        string sql = "select [MaNV] from NhanVien where taikhoan='nhanvien'";
        object value = DataProvider.ExecuteScalar(sql);
        if (value == null)
            return "NULL";
        return value.ToString();
    }
    public DataTable timkiemDonDatHang(string chuoitk, int loaitk, int trangthai)
    {
        string sql = "DECLARE	@return_value int EXECUTE TimKiemDonDatHang @ChuoiTimKiem = @a,@LoaiTK=@b, @TrangThai=@c";
        return DataProvider.GetData(sql, "@a", chuoitk, "@b", loaitk,"@c",trangthai);
    }
    public DataTable timkiemDonDatHang_NgayThang(string chuoitk, int loaitk, int trangthai)
    {
        string sql = "DECLARE	@return_value int EXECUTE TimKiemDonDatHang_NgayThang @ChuoiTimKiem = @a,@LoaiTK=@b,@TrangThai=@c";
        return DataProvider.GetData(sql, "@a", chuoitk, "@b", loaitk,"@c", trangthai);
    }

    public DataTable timkiemDonDatHang_SoDT(string chuoitk, int loaitk, int trangthai)
    {
        string sql = "DECLARE	@return_value int EXECUTE TimKiemDonDatHang_SoDT @ChuoiTimKiem = @a,@LoaiTK=@b,@TrangThai=@c ";
        return DataProvider.GetData(sql, "@a", chuoitk, "@b", loaitk,"@c", trangthai);
    }
    public DataTable getLichSuGH0(string tenDangNhap, int trangthai)
    {
        try
        {
            string sql = "select * from DonDatHang Where khachhang=@tenDangNhap and trangthai=@trangthai  order by ngaylap desc";
            return DataProvider.GetData(sql, "@tenDangNhap", tenDangNhap, "@trangthai", trangthai);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public DataTable getLichSuGH1(string tenDangNhap, int trangthai)
    {
        try
        {
            string sql = "select * from DonDatHang Where khachhang=@tenDangNhap and trangthai not in (select trangthai from dondathang where trangthai=@trangthai) order by ngaylap desc";
            return DataProvider.GetData(sql, "@tenDangNhap", tenDangNhap,"@trangthai",trangthai);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public DataTable laybanghoadon_xyly(int trangthai)
    {
        try
        {
            string sql = "select * from DonDatHang where TrangThai=@trangthai order by mahd desc";
            return DataProvider.GetData(sql, "@trangthai", trangthai);

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public void laybanghoadon_xylytrangThai(int trangthai,int mahd)
    {
        try
        {
            string sql = "UPDATE DonDatHang SET trangthai=@trangthai where mahd=@mahd";
            DataProvider.ExecuteNonQuery(sql, "@trangthai", trangthai,"@mahd",mahd);

        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public DataTable laybanghoadon_xuly_mahd(int mahd, int trangthai)
    {
        try
        {
            string sql = "select * from DonDatHang where TrangThai=@trangthai and mahd=@mahd order by mahd desc";
            return DataProvider.GetData(sql,"@trangthai",trangthai,"@mahd",mahd);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public DataTable laydondathang_tatca()
    {
        string sql = "select * from dondathang";
        return DataProvider.GetData(sql);
    }
    public void xoadondathang_mahd(int mahd)
    {
        string sql = "delete from DonDatHang where mahd=@mahd";
        DataProvider.ExecuteNonQuery(sql, "@mahd", mahd);
    }

    public bool xoadondathang_KH(int mahd, string masp)
    {
        //string sql = "delete from DonDatHang from DonDatHang ddh inner join ChiTietDonDatHang ctddh on ddh.mahd = ctddh.mahd where ctddh.mahd=@mahd and ctddh.masp=@masp";
        string sql = "Delete ChiTietDonDatHang where mahd=@mahd and masp=@masp";
        DataProvider.ExecuteNonQuery(sql, "@mahd", mahd,"@masp",masp);
        
        string sql1 = "SELECT COUNT(*) FROM ChiTietDonDatHang WHERE mahd=@mahd ";
        int soDDH = Int32.Parse(DataProvider.ExecuteScalar(sql1, "@mahd", mahd).ToString());
        if (soDDH.Equals(0))
        {
            sql = "DELETE DonDatHang WHERE mahd=@mahd";
            DataProvider.ExecuteNonQuery(sql, "@mahd", mahd);
            return true;
        }
        return false;
    }
    public DataTable laybanghoadongv_mahd(int mahd)
    {
        string sql = "Select * from DonDatHang a,ThanhVien b Where a.KhachHang=b.TenDangNhap and mahd=@mahd";
        return DataProvider.GetData(sql, "@mahd", mahd);
    }
    public void capnhatdondathangthanhhoadon(string mahd, int trangthai)
    {
        string sql = "UPDATE DonDatHang SET trangthai=@trangthai where mahd=@mahd";
        DataProvider.ExecuteNonQuery(sql,
            "@trangthai", trangthai,
            "@mahd", mahd);
    }
    public DataTable TimKiemDonDatHang_So(int mahd)
    {
        string sql = "exec sp_TIMDONDATHANG_user_ma @mahd";
        return DataProvider.GetData(sql, "@mahd", mahd);

    }
    public DataTable TimKiemDonDatHang_chuoi(string timkiem)
    {
        string sql = "exec sp_TIMDONDATHANG_user @chuoitim";
        return DataProvider.GetData(sql, "@chuoitim", timkiem);

    }
    public void capnhatthongtindondathang(DateTime ngaygiao, string diachi, int mahd)
    {
        string sql = "UPDATE DonDatHang SET ngaygiaohang=@ngaygiao,diachigiaohang=@diachi where mahd=@mahd";
        DataProvider.ExecuteNonQuery(sql,
            "@ngaygiao", ngaygiao,
            "@diachi", diachi,
            "@mahd", mahd);
    }
    public DataTable laybanghoadon_mahd(string mahd)
    {
        string sql = "Select * from DonDatHang a Where mahd=@mahd";
        return DataProvider.GetData(sql, "@mahd", mahd);
    }
    public DataTable LayChiTietHoadonTheoMaHD(int mahd)
    {
        string sql = "select a.masp,b.tensp,a.gia,a.soluong from ChiTietDonDatHang a,SanPham b where a.masp=b.masp and mahd=@mahd";
        return DataProvider.GetData(sql, "@mahd", mahd);
    }
    public DataTable LayChiTietHoadon_KH(int mahd)
    {
        string sql = "select sp.tensp,ctddh.mahd,ddh.trangthai,ctddh.masp,ctddh.soluong, ctddh.gia, ctddh.thanhtien, ddh.giamgia from dondathang ddh, chitietdondathang ctddh, sanpham sp where ddh.mahd = ctddh.mahd and ctddh.masp = sp.masp and ddh.mahd=@mahd";
        return DataProvider.GetData(sql, "@mahd", mahd); 
    }
    public EDonDatHang LayChiTietHoadon_KHLB(int mahd)
    {
        DataTable tableDonDatHang = DataProvider.GetData("select ddh.mahd, ctddh.mahd, ddh.giamgia, ddh.tongtien from dondathang ddh, chitietdondathang ctddh, sanpham sp where ddh.mahd = ctddh.mahd and ctddh.masp = sp.masp and ddh.mahd=@mahd","@mahd",mahd);
        EDonDatHang ddh = new EDonDatHang();
        ddh.GiamGia = Int32.Parse(tableDonDatHang.Rows[0]["GiamGia"].ToString());
        ddh.TongTien = tableDonDatHang.Rows[0]["TongTien"].ToString();
        return ddh;


    }
    public bool DeleteChiTietDonDatHang(int MaHD)//Xoa Chi Tiet Hoa Don
    {
        try
        {
            DataProvider.ExecuteNonQuery("DELETE FROM ChiTietDonDatHang WHERE MaHD=@MaHD", "@MaHD", MaHD);
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public bool DeleteChiTietDonDatHang1(int MaHD)//Xoa Chi Tiet Hoa Don
    {
        try
        {
            DataProvider.ExecuteNonQuery("Update ChiTietDonDatHang set Active=0 WHERE MaHD=@MaHD", "@MaHD", MaHD);
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public bool DeleteDonDatHang(int MaHD)//Xoa Hoa Don
    {
        try
        {
            DataProvider.ExecuteNonQuery("exec Xoa_HoaDon @MaHD", "@MaHD", MaHD);
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public bool DeleteDonDatHang1(int MaHD)//Xoa Hoa Don
    {
        try
        {
            DataProvider.ExecuteNonQuery("Update DonDatHang set Active=0 where MaHD=@MaHD", "@MaHD", MaHD);
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public EDonDatHang GetDonDatHang(int MaHD)//Lay Hoa Don
    {
        try
        {
            DataTable tableDonDatHang = DataProvider.GetData("Select * from DonDatHang where MaHD=@MaHD", "@MaHD", MaHD);
            EDonDatHang donDatHang = new EDonDatHang();
            donDatHang.MaHD = int.Parse(tableDonDatHang.Rows[0]["MaHD"].ToString());
            donDatHang.NgayLap = DateTime.Parse(tableDonDatHang.Rows[0]["NgayLap"].ToString());
            donDatHang.KhachHang = tableDonDatHang.Rows[0]["KhachHang"].ToString();
            donDatHang.TongTien = tableDonDatHang.Rows[0]["TongTien"].ToString();
            donDatHang.GiamGia = double.Parse(tableDonDatHang.Rows[0]["GiamGia"].ToString());
            donDatHang.TrangThai = int.Parse(tableDonDatHang.Rows[0]["TrangThai"].ToString());
            if (tableDonDatHang.Rows[0]["NgayGiaoHang"].ToString() != "")
                donDatHang.NgayGiaoHang = DateTime.Parse(tableDonDatHang.Rows[0]["NgayGiaoHang"].ToString());
            donDatHang.DiaChiGiaoHang = tableDonDatHang.Rows[0]["DiaChiGiaoHang"].ToString();
            donDatHang.DienThoaiNN = tableDonDatHang.Rows[0]["DienThoaiNN"].ToString();
            return donDatHang;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    public EDonDatHangCT GetChiTietDonDatHang(int MaHD)//Lay Chi Tiet Hoa Don
    {
        try
        {
            DataTable tableChiTietDonDatHang = DataProvider.GetData("SELECT ChiTietHoaDon.MaHD, ChiTietHoaDon.MaSP, ChiTietHoaDon.SoLuong, ChiTietHoaDon.Gia, ChiTietHoaDon.GiamGia, ChiTietHoaDon.ThanhTien, SanPham.TenSP FROM ChiTietHoaDon INNER JOIN SanPham ON ChiTietHoaDon.MaSP = SanPham.MaSP WHERE (ChiTietHoaDon.MaHD = @MaHD and ChiTietHoaDon.Active=1)", "@MaHD", MaHD);
            EDonDatHangCT ChiTietDonDatHang = new EDonDatHangCT();
            ChiTietDonDatHang.MaHD = int.Parse(tableChiTietDonDatHang.Rows[0]["MaHD"].ToString());
            ChiTietDonDatHang.MaSP = tableChiTietDonDatHang.Rows[0]["MaSP"].ToString();
            ChiTietDonDatHang.SoLuong = int.Parse(tableChiTietDonDatHang.Rows[0]["SoLuong"].ToString());
            ChiTietDonDatHang.Gia = tableChiTietDonDatHang.Rows[0]["Gia"].ToString();
            ChiTietDonDatHang.ThanhTien = tableChiTietDonDatHang.Rows[0]["ThanhTien"].ToString();
           
            return ChiTietDonDatHang;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public bool UpdateDonDatHang(int MaHD,DateTime NgayGiaoHang,string TrangThai)//Update Hoa Don
    {
        try
        {
            if(NgayGiaoHang==null)
                DataProvider.ExecuteNonQuery("Update DonDatHang Set NgayGiaoHang=NULL,TrangThai=@TrangThai Where MaHD=@MaHD", "@TrangThai", TrangThai, "@MaHD", MaHD);
            else
                DataProvider.ExecuteNonQuery("Update DonDatHang Set NgayGiaoHang=@NgayGiaoHang,TrangThai=@TrangThai Where MaHD=@MaHD", "@NgayGiaoHang", NgayGiaoHang, "@TrangThai", TrangThai, "@MaHD", MaHD);
           
            //capNhatSoLuong(MaHD);//update quantity
            return true;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public DataTable LayDonDatHang(int MaHD)//Lay Chi Tiet Hoa Don
    {
        try
        {
            string sql = "SELECT ChiTietDonDatHang.MaHD, ChiTietDonDatHang.MaSP, ChiTietDonDatHang.SoLuong, ChiTietDonDatHang.Gia, ChiTietDonDatHang.GiamGia, ChiTietDonDatHang.ThanhTien, SanPham.TenSP FROM ChiTietDonDatHang INNER JOIN SanPham ON ChiTietDonDatHang.MaSP = SanPham.MaSP WHERE (ChiTietDonDatHang.MaHD = @MaHD)";
            return DataProvider.GetData(sql, "@MaHD", MaHD);
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }
    public DataTable LayBangDonDatHang()//Lay Chi Tiet Hoa Don
    {
        try
        {
            return DataProvider.GetData("SELECT * FROM [DonDatHang]");
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

    public bool AddDonDatHang(EDonDatHang donDatHang, List<EDonDatHangCT> donDatHangCTs)
    {
        int MaDonDatHang = 0;//Khoi tao maDDH
        string mats = getMaThamSo();
        string manv = getMaNhanVien();
        //add to database
        string sqlAddDonDatHang = "INSERT INTO DonDatHang([NgayLap],[KhachHang],[NguoiNhan]," +
            "[TongTien],[GiamGia],[HinhThucTT],[HinhThucGH],[NgayGiaoHang],[DiaChiGiaoHang],[DienThoaiNN],[TrangThai],[MaNV],[MaThamSo]) "
            + " VALUES(@NgayLap,@KhachHang,@NguoiNhan," +
            "@TongTien,@GiamGia,@HinhThucTT,@HinhThucGH,@NgayGiaoHang,@DiaChiGiaoHang,@DienThoaiNN,@TrangThai,@manv,@mats);SELECT @@IDENTITY;";
        try
        {
            MaDonDatHang = Int32.Parse(DataProvider.ExecuteScalar(sqlAddDonDatHang, "@NgayLap", donDatHang.NgayLap, "@KhachHang", donDatHang.KhachHang
           , "@NguoiNhan", donDatHang.NguoiNhan, "@TongTien", donDatHang.TongTien,"@GiamGia",donDatHang.GiamGia, "@HinhThucTT", donDatHang.HinhThucTT
           , "@HinhThucGH", donDatHang.HinhThucGH, "@NgayGiaoHang", donDatHang.NgayGiaoHang, "@DiaChiGiaoHang", donDatHang.DiaChiGiaoHang,
           "@DienThoaiNN", donDatHang.DienThoaiNN, "@TrangThai", donDatHang.TrangThai,"@manv",manv,"@mats",mats).ToString());
            foreach (EDonDatHangCT donDatHangCT in donDatHangCTs)
            {
                string sqlStr = "INSERT INTO ChiTietDonDatHang([MaHD],[MaSP],[SoLuong],[Gia],[ThanhTien]) " +
                    "VALUES(@MaHD,@MaSP,@SoLuong,@Gia,@ThanhTien)";
                DataProvider.ExecuteNonQuery(sqlStr, "@MaHD", MaDonDatHang, "@MaSP", donDatHangCT.MaSP
                    , "@SoLuong", donDatHangCT.SoLuong, "@Gia", donDatHangCT.Gia, "@ThanhTien", donDatHangCT.ThanhTien);
            }
        }
        catch (Exception ex)
        {
            throw new Exception("Có lỗi trong quá trình thêm giỏ hàng!");
        }
        string productListHTML = "";
        foreach (EDonDatHangCT donDatHangCT in donDatHangCTs)
        {
            SanPhamCtr sanPhamCtr = new SanPhamCtr();
            productListHTML += "<tr>" +
                            "<td height='24' align='center'>" + donDatHangCT.MaSP + "</td>" +
                            "<td>" + sanPhamCtr.GetSanPham(donDatHangCT.MaSP.ToString()).TenSP + "</td>" +
                                    "<td>" +
                                    "<div align='right'>" +
                                    donDatHangCT.SoLuong +
                                    "</div></td>" +
                                    "<td><div align='right'>" + donDatHangCT.Gia + "</div></td><td><div align='right'>" + donDatHangCT.ThanhTien + "</div></td>" +
                                "</tr>";
        }
        if (donDatHang.HinhThucTT == "0")
        {
            donDatHang.HinhThucTT = "<b>Thanh toán bằng tiền mặt trực tiếp cho nhân viên giao hàng</b>";
        }
        else
        {
            donDatHang.HinhThucTT = "<b>Chuyển khoản qua ngân hàng</b><br/>" + "<div  style='margin-left:4px; margin-top:2px; color: #FF0000'>Khách hàng chuyển vào tài khoản với thông tin sau:</div>" + "<br />" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Chủ tài khoản: Nguyễn Văn A </div>" + "<br/>" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Mã số tài khoản: 419461969 </div>" + "<br/>" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Lời nhắn là Mã Đơn Hàng của quý khách </div>";
        }
        if (donDatHang.HinhThucGH == "0")
        {

            donDatHang.HinhThucGH = "<b>Nhân viên chuyển hàng trực tiếp</b>";

        }
        else
        {
            donDatHang.HinhThucGH = "<b>Chuyển hàng qua bưu điện</b>";

        }
        ThanhVienCtr thanhVienCtr = new ThanhVienCtr();
        EThanhVien thanhVien = thanhVienCtr.GetThanhVien(donDatHang.KhachHang);
        string mailStr = "<div style='padding:10px;background-color:Orange;'>" +
        "<div style='background-color:White;padding:5px;'>" +
          "  <div style='margin-left:20px;'><a href='http://www.thegioicuabe.net/' target='_blank' rel='nofollow'>" +
            "<img border='0' alt='' src='http://localhost:1989/TheGioiCuaBe/User/images/logo.gif' /></a></div>" +
            "<p><strong>Kính chào Qúy khách!</strong></p>" +
            "<p>Cảm ơn Quý khách đã đặt hàng tại Thegioicuabe.net</p>" +
            "<p>Đơn hàng của Quý khách có mã số <strong><strong>" + MaDonDatHang + "</strong></strong>," +
            "các thông tin chi tiết về đơn hàng được liệt kê dưới đây:</p>" +
            "<div style='font-size:large;background-color:Orange; color:White;padding-left:10px;'>Thông tin đơn hàng</div>" +
            "Email: " + thanhVien.Email + "<br />" +
            "<div style='width:48%;float:left'>" +
            "<b>Thông tin của quý khách:</b><br />" +
            "Họ tên:" + thanhVien.TenKH + "<br />" +
            "Địa chỉ:" + thanhVien.DiaChi + "<br />" +
            "Điện thoại:" + thanhVien.DienThoai + "<br /></div>" +
            "<div style='width:50%;float:left'>" +
            "<b>Thông tin người nhận hàng:</b><br />" +
            "Họ tên:" + donDatHang.NguoiNhan + "<br />" +
            "Địa chỉ:" + donDatHang.DiaChiGiaoHang + "<br /> " +
            "Điện thoại:" + donDatHang.DienThoaiNN + "<br /></div>" +
            "<div style='clear:both;font-size:large;background-color:Orange; color:White;padding-left:10px;'>Chi tiết đơn hàng</div>" +
            "Mã số đơn hàng: " + MaDonDatHang + "<br />" +
            "Ngày đặt hàng:" + donDatHang.NgayLap.ToString("dd/MM/yyyy") + "<br />" +
            "Hình thức thanh toán:" + donDatHang.HinhThucTT + "<br />" +
            "Hình thức giao hàng:" + donDatHang.HinhThucGH + "<br />" +
            "Ngày giao hàng: " + donDatHang.NgayGiaoHang.ToString("dd/MM/yyyy") + "<br/>"+
            "<table cellspacing='1' cellpadding='1' border='1' width='100%' style='border-collapse:collapse;' id='yui_3_2_0_1_1327815185649219'>" +
            "		<tbody id='yui_3_2_0_1_1327815185649218'>" +
            "			<tr><td><div align='center'>Mã</div></td><td>" +
                        "<div align='center'>Tên sản phẩm</div></td>" +
            "				<td><div align='center'>Số lượng</div></td><td>" +
                            "<div align='center'>Đơn giá<br/>(vnd)</div></td>" +
            "				<td><div align='center'>Thành tiền<br/>(vnd)</div>" +
            "				</td>" +
            "			</tr>" +
                            productListHTML +
                                "<tr id='yui_3_2_0_1_1327815185649217'>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Trị giá tiền hàng" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right' id='yui_3_2_0_1_1327815185649216'>" + donDatHang.SoTien + "</td>" +
                                "</tr>" +
                                "<tr>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Giảm giá" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right'>" + donDatHang.GiamGia + "</td>" +
                                "</tr>" +
                                "<tr>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Tổng trị giá" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right'><span style='font-size:large'><strong>" + donDatHang.TongTien + "</strong></span></td>" +
                                "</tr>" +
                                "<tr>" +
                                    "<td colspan='5'><em>Ghi chú: </em></td>" +
            "					</tr>" +
            "				</tbody>" +
            "</table>" +
         "   <div></div>" +
       "     <hr /><div>Cửa hàng đồ chơi trẻ em <b>Thế giới của bé</b><br /> " +
      "     29 Hoành Hoa Thám, P.13, Q. Tân Bình, TP Hồ Chí Minh.<br /></div>" +
     "       <div style='clear:both;'></div>" +
     "   </div></div>";
        try
        {
            GoogleMail.Send(thanhVien.Email, "The gioi cua be", mailStr);
        }
        catch
        {
            throw new Exception("Có lỗi trong quá trình gửi email!");
        }
        return true;
    }
    public int AddDonDatHangH(EDonDatHang donDatHang, List<EDonDatHangCT> donDatHangCTs)
    {
        int MaDonDatHang = 0;
        string mats = getMaThamSo();
        string manv = getMaNhanVien();
        //add to database
        string sqlAddDonDatHang = "INSERT INTO DonDatHang([NgayLap],[KhachHang],[NguoiNhan]," +
            "[TongTien],[GiamGia],[HinhThucTT],[HinhThucGH],[NgayGiaoHang],[DiaChiGiaoHang],[DienThoaiNN],[TrangThai],[MaNV],[MaThamSo]) "
            + " VALUES(@NgayLap,@KhachHang,@NguoiNhan," +
            "@TongTien,@GiamGia,@HinhThucTT,@HinhThucGH,@NgayGiaoHang,@DiaChiGiaoHang,@DienThoaiNN,@TrangThai,@manv,@mats);SELECT @@IDENTITY;";
        try
        {
            MaDonDatHang = Int32.Parse(DataProvider.ExecuteScalar(sqlAddDonDatHang, "@NgayLap", donDatHang.NgayLap, "@KhachHang", donDatHang.KhachHang
           , "@NguoiNhan", donDatHang.NguoiNhan, "@TongTien", donDatHang.TongTien, "@GiamGia", donDatHang.GiamGia, "@HinhThucTT", donDatHang.HinhThucTT
           , "@HinhThucGH", donDatHang.HinhThucGH, "@NgayGiaoHang", donDatHang.NgayGiaoHang, "@DiaChiGiaoHang", donDatHang.DiaChiGiaoHang,
           "@DienThoaiNN", donDatHang.DienThoaiNN, "@TrangThai", donDatHang.TrangThai,"@manv",manv, "@mats", mats).ToString());
            foreach (EDonDatHangCT donDatHangCT in donDatHangCTs)
            {
                string sqlStr = "INSERT INTO ChiTietDonDatHang([MaHD],[MaSP],[SoLuong],[Gia],[ThanhTien]) " +
                    "VALUES(@MaHD,@MaSP,@SoLuong,@Gia,@ThanhTien)";
                DataProvider.ExecuteNonQuery(sqlStr, "@MaHD", MaDonDatHang, "@MaSP", donDatHangCT.MaSP
                    , "@SoLuong", donDatHangCT.SoLuong, "@Gia", donDatHangCT.Gia, "@ThanhTien", donDatHangCT.ThanhTien);
            }
        }
        catch (Exception ex)
        {
            throw new Exception("Có lỗi trong quá trình thêm giỏ hàng!");
        }
        //Xem rui
        string productListHTML = "";
        foreach (EDonDatHangCT donDatHangCT in donDatHangCTs)
        {
            SanPhamCtr sanPhamCtr = new SanPhamCtr();
            productListHTML += "<tr>" +
                            "<td height='24' align='center'>" + donDatHangCT.MaSP + "</td>" +
                            "<td>" + sanPhamCtr.GetSanPham(donDatHangCT.MaSP.ToString()).TenSP + "</td>" +
                                    "<td>" +
                                    "<div align='right'>" +
                                    donDatHangCT.SoLuong +
                                    "</div></td>" +
                                    "<td><div align='right'>" + donDatHangCT.Gia + "</div></td><td><div align='right'>" + donDatHangCT.ThanhTien + "</div></td>" +
                                "</tr>";
        }
        if (donDatHang.HinhThucTT == "0")
        {
            donDatHang.HinhThucTT = "<b>Thanh toán bằng tiền mặt trực tiếp cho nhân viên giao hàng</b>";
        }
        else
        {
            donDatHang.HinhThucTT = "<b>Chuyển khoản qua ngân hàng</b><br/>" + "<div  style='margin-left:4px; margin-top:2px; color: #FF0000'>Khách hàng chuyển vào tài khoản với thông tin sau:</div>" + "<br />" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Chủ tài khoản: Phạm Thị Nhi </div>" + "<br/>" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Email: service.thegioicuabe@gmail.com </div>" + "<br/>" + "<div style='margin-left:4px; margin-top:2px; color: #FF0000'>Lời nhắn là Mã Đơn Hàng của quý khách:"+MaDonDatHang+" </div>";
        }
        if (donDatHang.HinhThucGH == "0")
        {

            donDatHang.HinhThucGH = "<b>Nhân viên chuyển hàng trực tiếp</b>";

        }
        else
        {
            donDatHang.HinhThucGH = "<b>Chuyển hàng qua bưu điện</b>";

        }

        ThanhVienCtr thanhVienCtr = new ThanhVienCtr();
        EThanhVien thanhVien = thanhVienCtr.GetThanhVien(donDatHang.KhachHang);
        string mailStr = "<div style='padding:10px;background-color:Orange;'>" +
        "<div style='background-color:White;padding:5px;'>" +
          "  <div style='margin-left:20px;'><a href='http://www.thegioicuabe.net/' target='_blank' rel='nofollow'>" +
            "<img border='0' alt='' src='http://localhost:1989/TheGioiCuaBe/User/images/logo.gif' /></a></div>" +
            "<p><strong>Kính chào Qúy khách!</strong></p>" +
            "<p>Cảm ơn Quý khách đã đặt hàng tại Thegioicuabe.net</p>" +
            "<p>Đơn hàng của Quý khách có mã số <strong><strong>" + MaDonDatHang + "</strong></strong>," +
            "các thông tin chi tiết về đơn hàng được liệt kê dưới đây:</p>" +
            "<div style='font-size:large;background-color:Orange; color:White;padding-left:10px;'>Thông tin đơn hàng</div>" +
            "Email: " + thanhVien.Email + "<br />" +
            "<div style='width:48%;float:left'>" +
            "<b>Thông tin của quý khách:</b><br />" +
            "Họ tên:" + thanhVien.TenKH + "<br />" +
            "Địa chỉ:" + thanhVien.DiaChi + "<br />" +
            "Điện thoại:" + thanhVien.DienThoai + "<br /></div>" +
            "<div style='width:50%;float:left'>" +
            "<b>Thông tin người nhận hàng:</b><br />" +
            "Họ tên:" + donDatHang.NguoiNhan + "<br />" +
            "Địa chỉ:" + donDatHang.DiaChiGiaoHang + "<br /> " +
            "Điện thoại:" + donDatHang.DienThoaiNN + "<br /></div>" +
            "<div style='clear:both;font-size:large;background-color:Orange; color:White;padding-left:10px;'>Chi tiết đơn hàng</div>" +
            "Mã số đơn hàng: " + MaDonDatHang + "<br />" +
            "Ngày đặt hàng:" + donDatHang.NgayLap.ToString("dd/MM/yyyy") + "<br />" +
            "Hình thức thanh toán:" + donDatHang.HinhThucTT + "<br />" +
            "Hình thức giao hàng:" + donDatHang.HinhThucGH + "<br />" +
            "Ngày giao hàng: " + donDatHang.NgayGiaoHang.ToString("dd/MM/yyyy") +
            "<table cellspacing='1' cellpadding='1' border='1' width='100%' style='border-collapse:collapse;' id='yui_3_2_0_1_1327815185649219'>" +
            "		<tbody id='yui_3_2_0_1_1327815185649218'>" +
            "			<tr><td><div align='center'>Mã</div></td><td>" +
                        "<div align='center'>Tên sản phẩm</div></td>" +
            "				<td><div align='center'>Số lượng</div></td><td>" +
                            "<div align='center'>Đơn giá<br/>(vnd)</div></td>" +
            "				<td><div align='center'>Thành tiền<br/>(vnd)</div>" +
            "				</td>" +
            "			</tr>" +
                            productListHTML +
                                "<tr id='yui_3_2_0_1_1327815185649217'>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Trị giá tiền hàng" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right' id='yui_3_2_0_1_1327815185649216'>" + donDatHang.SoTien + "</td>" +
                                "</tr>" +
                                "<tr>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Giảm giá" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right'>" + donDatHang.GiamGia + "</td>" +
                                "</tr>" +
                                "<tr>" +
                                "	<td colspan='4'>" +
                                "	<div align='right'>" +
                                "	Tổng trị giá" +
                                "	</div>" +
                                "	</td>" +
                                "	<td align='right'><span style='font-size:large'><strong>" + donDatHang.TongTien + "</strong></span></td>" +
                                "</tr>" +
                                "<tr>" +
                                    "<td colspan='5'><em>Ghi chú: </em></td>" +
            "					</tr>" +
            "				</tbody>" +
            "</table>" +
         "   <div></div>" +
       "     <hr /><div>Cửa hàng đồ chơi trẻ em <b>Thế giới của bé</b><br /> " +
      "     29 Hoành Hoa Thám, P.13, Q. Tân Bình, TP Hồ Chí Minh.<br /></div>" +
     "       <div style='clear:both;'></div>" +
     "   </div></div>";
        try
        {
            tongtien = decimal.Parse(donDatHang.TongTien);
            mahd = MaDonDatHang.ToString();
            GoogleMail.Send(thanhVien.Email, "The gioi cua be", mailStr);
        }
        catch
        {
            throw new Exception("Có lỗi trong quá trình gửi email!");
        }
        return MaDonDatHang;
    }
    public DataTable LayDonDatHangH(int MaHD)//Lay Chi Tiet Hoa Don
    {
        try
        {
            string sql = "SELECT ChiTietDonDatHang.MaHD, ChiTietDonDatHang.MaSP, ChiTietDonDatHang.SoLuong, ChiTietDonDatHang.Gia, ChiTietDonDatHang.ThanhTien, SanPham.TenSP FROM ChiTietDonDatHang INNER JOIN SanPham ON ChiTietDonDatHang.MaSP = SanPham.MaSP WHERE (ChiTietDonDatHang.MaHD = @MaHD)";
            return DataProvider.GetData(sql, "@MaHD", MaHD);
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }
    
}